#ifndef MAINOPTIONS_H
#define MAINOPTIONS_H

#include <QtGui/QDialog>
#include "types.h"
class QVBoxLayout;
class QToolBox;
class QListWidget;
class QStackedWidget;
class QListWidgetItem;
class RoundaboutPage;
class RoadsPage;
class TramsPage;


/*! \class Options
    \brief Główne okno opcji dotyczących budowy ronda

    Okno opcji jest podzielone na trzy strony:
    <ul><li>Opcje ronda
    <li>Ulice
    <li>Tramwaje</ul>
    Każda z tych stron jest osobną klasą: RoundaboutPage, RoadsPage i TramsPage.
    Opcje są zapisywane na dysku, dzięki czemu są "zapamiętywane" uprzednio ustawione opcje.
*/
class Options : public QDialog
{
    Q_OBJECT

public:
    Options(QWidget *parent = 0);
    ~Options();
    int getNumBranches();
    Dependence getBranchDependence(int);
    Direction getBranchDirection(int);

public slots:
    void changePage(QListWidgetItem *current, QListWidgetItem *previous);
    void saveSettings();
    void readSettings();

private:
    QListWidget *contentsWidget; /**< Okienko opcji */
    QStackedWidget *pagesWidget; /**< Pole z lewej strony okienka opcji, na którym umieszczane są ikonki stron */
    RoundaboutPage *rondoPage; /**< Strona opcji odpowiadająca za budowę ronda (klasa RoundaboutPage) */
    RoadsPage *ulicePage; /**< Strona opcji odpowiadająca za budowę ulic na rondzie (klasa RoadsPage) */
    TramsPage *tramwajePage; /**< Strona opcji odpowiadająca za budowę torów tramwajowych (klasa tramwajePage) */
    QPushButton *closeButton; /**< Przycisk potwierdzający zmiany w okienku opcji*/
    QPushButton *anulujButton; /**< Przycisk anulujący zmiany w okienku opcji*/
    void createIcons();
};

#endif // MAINOPTIONS_H
